str = "abcde"

# 切片
print(str[::-1])
# 内置函数
print("".join(reversed(str)))
# 循环
ret = ""
for c in str:     # 相当于Java的 for(c : str) 遍历迭代器
    ret = c + ret  # 取出一个字符就拼接在ret字符的前面
print(ret)

a = "听君一席话,如听一席话"
print("~".join(a)) # 输出: 听~君~一~席~话~,~如~听~一~席~话

l = ["广东省", "深圳市", "龙华区..."]
print("~".join(l)) # 输出: 广东省~深圳市~龙华区...


print(a.isalnum())
print(a.isdigit())


print(a.startswith("听君")) # 输出: True
print(a.startswith("君")) # 输出: False
print(a.endswith("话")) # 输出: True


print(a.split("一")) # 输出: ['听君', '席话,如听', '席话']
print(a.split("一",1)) # 输出: ['听君', '席话,如听一席话']

s = "三三三"
print(s.count("三")) # 输出: 3
print(s.count("三",2,3)) # 输出: 1
print(s.count("三三")) # 输出: 1
print(s.count("三三",2,3)) # 输出: 0


print(s.replace("三","6")) # 输出: 666
print(s.replace("三","6",1)) # 输出: 6三三


# start 表示搜索的起始位置, 默认为 0
# end 表示搜索的结束位置, 默认为字符串长度
print(s.find("一席话"),0, 11) # 找到第一个"一席话"
print(s.find("一席话"),6, 11) # 找到第二个"一席话"


a = "abcdefg" # 总共 7 个字符
# 步长为正数
print(a[:]) # 取所有, 默认步长为 1. 输出: abcdefg
print(a[::2]) # 取所有, 步长为 2. 输出: aceg
print(a[:3]) # 取前 3 位, 没填步长默认为 1, 起始下标不填默认从 0 开始. 输出: abc
print(a[5:]) # 取第 5 位以后的内容, 结束下标不填默认到最后一个字符. 输出: fg
print(a[1:5]) # 取下标[1,4]. 输出: bcde
print(a[1:5:2]) # 取区间[1,4]中的字符, 步长为 2. 输出: bd

print(a[1:-1]) # 取 第2位 到 倒数第2位, 输出: bcdef

# 步长为负数
print(a[5:1:-1]) # 步长为负数, 代表从右往左取, 从第5位反向取到第1位, 输出: fedc
print(a[::-1]) # 反转字符串. 输出: gfedcba


s = "abc"
print(s[0]) # 输出: a
print(s[-3]) # 输出: a

print(s[2]) # 输出 c
print(s[-1]) # 输出 c

# Hello xx, 祝你 xx 岁生日快乐!
name = "张三"
age = 18
print("Hello,{}, 祝你{}岁生日快乐!".format(name, age))

# 自定义名片
name1 = input("请输入你的名字: ")
position = input("请输入你的职位: ")
company_name = input("请输入你的公司名: ")

print("-" * 30) # 字符串也可以用乘法, 复制 30 个 "-" 号
print("姓名: {}".format(name1))
print("职位: {}".format(position))
print("公司: {}".format(company_name))
print("-" * 30)
